home *** CD-ROM | disk | FTP | other *** search
- INFOS TO BUILD PKTDRV.PRG========================
- 256 bytes stack are sufficient for this version (RIEBL CARD PLUS).urn off stack-
- checking.
- I used PURE-C to develop this driver, see the .prj file how to link allbjects.
- PKTDRV.PRG adds a cookie named '_PKT', its value is a pointer to jumptable. All
- functions use the PURE-C register parameter passingonvention, that is, integer t
- ypes in D0,D1 , pointers in A0,A1 rom first parameter to last respectively.
- Supported functions are:
- int net_info(int length_of_buffer, char *buffer);
- Gives information about traffic on the node. This function is not developed to i
- ts final state and is subject tohange in the future)eturn: negative errorcode or
- length of copied data.
- int net_open(int protocol, int (*handler)(int length,char *pkt));
- Tells the driver the address of a packet handler, which wants toeceive packets o
- f a specific ethernet protocol. Up to 5 differentrotocols are allowed at the mom
- ent (only 2 (ARP and IP) are used by ur apps)eturn: negative errorcode or 0 if s
- uccesful.
- The protocol-handler function gets the length (in D0) and the addressin A0) of a
- newly arrived packet. If the handler accepts the packett returns a nonzero valu
- e, otherwise it returns zero and the packet river discards the packet. Accepted
- packets must be freed usinget_pktfree after processing. The protocol-handler run
- s on interruptevel, therefore no stack-checking is allowed
- int net_release(int protocol);
- Removes a protocol from the protocoltable. Any further incomingackets of this pr
- otocol are discarded by the packet driver.eturn: negative errorcode or 0 if succ
- essful.
- int net_send(int length, char *pkt);
- Send a packet. The packet is sent as it is, any headers (inclusive thernet heade
- r) must be filled by the caller. This function waitsntil the packet is sent or a
- error is returned from the chip.nly packets allocated by net_pktalloc or got fr
- om the protocol-pcall should be handed to this function.eturn: negative errorcod
- e or length of sent packet, if successful.
- (Note: The length of the sent packet may be greater than the originalacket, sinc
- e the minimum length of a ethernet packet is 60 bytes).
-
- int net_getadr(int length_of_buffer,char *addr_buffer);
- Fills addr_buffer with the local hardware address.eturn: number of copied bytes
- or negative errorcode
- int net_reset(void);
- Reset the packet driver to a state like after startup, any activerotocol is abor
- ted.eturn: 0 if successful or negative errorcode
- PKTBUF *net_pktalloc(u_short length_of_packet);
- Allocates a block of memory to hold a packet. If the interfacerovides onboard me
- mory, it is strongly recommended to allocatehis block onboard to avoid unneccess
- ary copying of data.eturn: pointer to new allocated packet or NULL if out of mem
- .
- int net_pktfree(PKTBUF *);
- Free a packet allocated by net_pktalloc or handed by the protocol-andler upcall.
- eturn: 0 if successful or negative errorcode.
- Indices to the jumptable are provided in pktdrv.h
- Any suggestions would be appreciated.
- Hans Wieser
- ---
-
- Support for other Ethernet cards:--------------------------------
- The packet driver forms the interface to any Ethernet card applied toour ATARI.
- So if you would like to use any other card than theIEBL card you simply have to
- change this program.e did this for a Dlink DE600 pocket adaptor usually fitted t
- o thearallel port of an IBM-PC. Since the ATARI does not provide allf the requir
- ed signals on its parallel port, we did some simplenterface hardware for the car
- tridge port. The file "adaptor.img"hows the principle of this piece. The packet
- driver for the DE600ou can find in the file "dlinkdrv.prg".
- The sources for packet drivers are provided in pktdrv/pktdlink and
- pktdrv/pktlance.
-
- Peter Mayer
-